﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;

namespace Ausy.Silverlight.Survey.QuestionModule.Model
{
    /// <summary>
    /// Cette classe représente une réponse à une question d'un questionnaire
    /// </summary>
    public class UserQuestionnaireResponse
    {
        #region Identifier Property

        /// <summary>
        /// Identifiant de cette réponse au questionnaire
        /// </summary>
        public Guid Identifier { get; set; }

        #endregion

        #region QuestionReferenceID Property

        /// <summary>
        /// Identifiant du question remplit
        /// </summary>
        public Guid QuestionReferenceID { get; set; }

        #endregion

        #region ResponseResult Property

        /// <summary>
        /// Resultat de la réponse en pourcentage
        /// </summary>
        public Decimal ResponseResult
        {
            get
            {
                return Convert.ToDecimal((Convert.ToDouble(CorrectResponseCounter) / Convert.ToDouble(TotalResponseCounter)) * 100);
            }
        }

        #endregion

        #region CorrectResponseCounter Property

        /// <summary>
        /// Nombre de réponses correcte
        /// </summary>
        public int CorrectResponseCounter { get; set; }

        #endregion

        #region TotalResponseCounter Property

        /// <summary>
        /// Nombre de réponse attendue
        /// </summary>
        public int TotalResponseCounter { get; set; }

        #endregion

        #region TimeSpanComplete Property

        /// <summary>
        /// Temps passé à répondre à une questions
        /// </summary>
        public TimeSpan TimeSpanComplete { get; set; }

        #endregion

        #region ResponseAnswerCollection Property

        /// <summary>
        /// Liste des identifiants des réponses
        /// </summary>
        public Collection<Guid> ResponseAnswerCollection { get; set; }

        #endregion

        #region Constructor

        /// <summary>
        /// Constructeur par défaut
        /// </summary>
        public UserQuestionnaireResponse()
        {
            this.Identifier = Guid.NewGuid();
            this.QuestionReferenceID = Guid.Empty;
            this.ResponseAnswerCollection = new Collection<Guid>();
            this.TimeSpanComplete = new TimeSpan();
            this.TotalResponseCounter = 0;
            this.CorrectResponseCounter = 0;
        }

        #endregion

    }
}
